home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1993 July / InfoMagic USENET CD-ROM July 1993.ISO / sources / misc / volume10 / pcmail2 / part12 < prev    next >
Encoding:
Text File  |  1990-01-24  |  34.3 KB  |  1,108 lines

  1. Newsgroups: comp.sources.misc
  2. organization: Eindhoven University of Technology, The Netherlands
  3. keywords: oops
  4. subject: v10i044: PC-MAIL release 2, Part12/11
  5. from: wswietse@lso.win.tue.nl (Wietse Venema)
  6. Sender: allbery@uunet.UU.NET (Brandon S. Allbery - comp.sources.misc)
  7.  
  8. Posting-number: Volume 10, Issue 44
  9. Submitted-by: wswietse@lso.win.tue.nl (Wietse Venema)
  10. Archive-name: pcmail2/part12
  11.  
  12. #! /bin/sh
  13. # This is a shell archive.  Remove anything before this line, then unpack
  14. # it by saving it into a file and typing "sh file".  To overwrite existing
  15. # files, type "sh file -c".  You can also feed this as standard input via
  16. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  17. # will see the following message at the end:
  18. #        "End of archive 1 (of 1)."
  19. # Contents:  FILES2 main main/cico.c main/tutorial.doc
  20. # Wrapped by wswietse@tuewsa on Wed Jan 24 15:58:56 1990
  21. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  22. if test -f FILES2 -a "${1}" != "-c" ; then 
  23.   echo shar: Will not over-write existing file \"FILES2\"
  24. else
  25. echo shar: Extracting \"FILES2\" \(42 characters\)
  26. sed "s/^X//" >FILES2 <<'END_OF_FILES2'
  27. XFILES2
  28. Xmain
  29. Xmain/cico.c
  30. Xmain/tutorial.doc
  31. END_OF_FILES2
  32. if test 42 -ne `wc -c <FILES2`; then
  33.     echo shar: \"FILES2\" unpacked with wrong size!
  34. fi
  35. # end of overwriting check
  36. fi
  37. if test ! -d main ; then
  38.     echo shar: Creating directory \"main\"
  39.     mkdir main
  40. fi
  41. if test -f main/cico.c -a "${1}" != "-c" ; then 
  42.   echo shar: Will not over-write existing file \"main/cico.c\"
  43. else
  44. echo shar: Extracting \"main/cico.c\" \(5056 characters\)
  45. sed "s/^X//" >main/cico.c <<'END_OF_main/cico.c'
  46. X/*++
  47. X/* NAME
  48. X/*      cico 1
  49. X/* SUMMARY
  50. X/*      uucp file transfer
  51. X/* PROJECT
  52. X/*      pc-mail
  53. X/* PACKAGE
  54. X/*      cico
  55. X/* SYNOPSIS
  56. X/*      cico -p password [-d debuglevel]
  57. X/* DESCRIPTION
  58. X/*      cico is a program that connects to a real unix host
  59. X/*      for exchange of spool files. It is a simplified
  60. X/*    version of the unix uucico (copy-in-copy-out) program.
  61. X/*
  62. X/*    Options:
  63. X/* .TP
  64. X/*    -p password
  65. X/*    The password that cico will use when logging in on the
  66. X/*    unix host.
  67. X/* .TP
  68. X/*    -d debuglevel
  69. X/*      Set the debugging level. It makes both the local cico
  70. X/*      and the remote uucico more verbose. Default debugging
  71. X/*    level is 0.
  72. X/* FILES
  73. X/*      cico manipulates various files in the spool directory.
  74. X/*    See path(5) for the implementation of the message data base.
  75. X/*
  76. X/*      LOGFILE         transaction logging
  77. X/*    s00000        communications parameters
  78. X/* SEE ALSO
  79. X/*      comm(5)        communications parameters
  80. X/*    status(5)    error returns
  81. X/* DIAGNOSTICS
  82. X/*      The program terminates with a non-zero exit status if there
  83. X/*      were problems. The error status codes can be translated
  84. X/*    to meaningful messages (see status(5)).
  85. X/*      More technical messages are written to the logfile.
  86. X/* BUGS
  87. X/*    cico only supports the functions needed for exchange of
  88. X/*    electronic mail. Every incoming data file is treated as
  89. X/*    if it were a mail message for the user of the pc.
  90. X/* AUTHOR(S)
  91. X/*      W.Z. Venema
  92. X/*      Eindhoven University of Technology
  93. X/*      Department of Mathematics and Computer Science
  94. X/*      Den Dolech 2, P.O. Box 513, 5600 MB Eindhoven, The Netherlands
  95. X/* CREATION DATE
  96. X/*      Sat Mar 28 19:58:06 GMT+1:00 1987
  97. X/* LAST MODIFICATION
  98. X/*    90/01/22 13:01:17
  99. X/* VERSION/RELEASE
  100. X/*    2.1
  101. X/*--*/
  102. X
  103. X#include <stdio.h>
  104. X#include <setjmp.h>
  105. X
  106. X#include "defs.h"
  107. X#include "logs.h"
  108. X#include "params.h"
  109. X#include "comm.h"
  110. X#include "status.h"
  111. X#include "path.h"
  112. X
  113. Xpublic int *systrap;                            /* panic button */
  114. Xpublic int dflag = 0;                           /* debug flag */
  115. X#ifdef    unix
  116. X    public int Debug = 0;            /* UUCP compatibility */
  117. X#endif
  118. X
  119. Xpublic char *progname = "cico";            /* for diagnostics etc. */
  120. X
  121. Xhidden void parse_args(),sanity();              /* forward declarations */
  122. X
  123. X/* main program - parse command line options and pull the ropes */
  124. X
  125. Xmain(argc,argv)
  126. Xint argc;
  127. Xchar **argv;
  128. X{
  129. X    register int status;                        /* most recent error code */
  130. X    jmp_buf mainbuf;                            /* catch-all */
  131. X
  132. X    parse_args(argc,argv);                      /* process cmd arguments */
  133. X
  134. X    sanity();                                   /* check systems parameters */
  135. X
  136. X    if (setjmp(systrap = mainbuf))              /* safety net in case of */
  137. X    exit(E_CONFUSED);                       /* too many long jumps */
  138. X
  139. X    xopen();                                    /* init comm. line */
  140. X    if ((status = connect()) == 0               /* login on remote system */
  141. X    && (status = startproto()) == 0) {          /* start comm. protocol */
  142. X    status = switcher(MASTER);              /* use the protocol */
  143. X    endproto();                             /* terminate the protocol */
  144. X    }                                           /* (ignore errors) */
  145. X    disconnect();                               /* as it says */
  146. X    xclose();                                   /* close comm. line */
  147. X
  148. X    exit(status);
  149. X    /* NOTREACHED */
  150. X}
  151. X
  152. X/* parse_args - take care of command-line arguments */
  153. X
  154. Xhidden void parse_args(argc,argv)
  155. Xint argc;
  156. Xchar **argv;
  157. X{
  158. X    while (--argc && *++argv && **argv == '-') {
  159. X    switch (*++*argv) {
  160. X    case 'p':
  161. X        if (--argc == 0)
  162. X        usage("missing password argument");
  163. X        password = *++argv;
  164. X        break;
  165. X    case 'd':
  166. X        if (--argc == 0)
  167. X        usage("missing debugging level argument");
  168. X        sscanf(*++argv,"%d",&dflag);
  169. X#ifdef    unix
  170. X        Debug = 
  171. X#endif
  172. X        dflag = ((dflag < 0 ? 0 : dflag) > 10 ? 10 : dflag);
  173. X        break;
  174. X    default:
  175. X        usage(strcons("invalid option: -%s",*argv));
  176. X        break;
  177. X    }
  178. X    }
  179. X    if (argc > 0)
  180. X    usage(strcons("unexpected argument: %s",*argv));
  181. X}
  182. X
  183. X/* sanity - some preliminary work; mainly checks on sanity */
  184. X
  185. Xhidden void sanity()
  186. X{
  187. X    register int status;
  188. X    register Info *ip;
  189. X
  190. X    if (status = pathinit())                            /* check environment */
  191. X    exit(status);                                   /* bad environment */
  192. X
  193. X    if (status = open_log())                            /* check the logfile */
  194. X    exit(status);                                   /* cannot write */
  195. X
  196. X    for (ip = comm = getparams(); ip->ident; ip++) {    /* check param. file */
  197. X    if (ip->strval == 0 || ip->strval[0] == '\0')
  198. X        exit(E_BADSETUP);                           /* incomplete setup */
  199. X    debug(6)("%s %s\n",ip->ident,ip->strval ? ip->strval : "");
  200. X    }
  201. X    if (password == 0 || *password == 0) 
  202. X    usage("no password specified");                 /* no password */
  203. X
  204. X    strcpy(rmthost,comm[P_HOST].strval);        /* remote host name */
  205. X}
  206. X
  207. X/* usage - print error message and usage string */
  208. X
  209. Xusage(str)
  210. Xchar *str;
  211. X{
  212. X    fprintf(stderr,"%s\nusage: cico -p password [-d debuglevel]\n",str);
  213. X    exit(2);
  214. X}
  215. END_OF_main/cico.c
  216. if test 5056 -ne `wc -c <main/cico.c`; then
  217.     echo shar: \"main/cico.c\" unpacked with wrong size!
  218. fi
  219. # end of overwriting check
  220. fi
  221. if test -f main/tutorial.doc -a "${1}" != "-c" ; then 
  222.   echo shar: Will not over-write existing file \"main/tutorial.doc\"
  223. else
  224. echo shar: Extracting \"main/tutorial.doc\" \(26447 characters\)
  225. sed "s/^X//" >main/tutorial.doc <<'END_OF_main/tutorial.doc'
  226. X
  227. X
  228. X
  229. X
  230. X
  231. X
  232. X
  233. X
  234. X
  235. X                      PC-MAIL tutorial
  236. X
  237. X
  238. X                      Wietse Z. Venema
  239. X             Mathematics and Computing Science,
  240. X             Eindhoven University of Technology
  241. X                 Eindhoven, The Netherlands
  242. X
  243. X
  244. X
  245. X
  246. X
  247. X
  248. X1.  What does this software do for you?
  249. X
  250. XThis software allows you  to  send  and  receive  electronic
  251. Xmail.  Once the software has been configured, it can be used
  252. Xwithout any knowledge about computer networking.
  253. X
  254. XThe following summarizes a few features:
  255. X
  256. Xo    Mail messages can be edited, printed, replied to, sent,
  257. X     and received, from within the mail program.
  258. X
  259. Xo    Messages  can  be  created  with  almost  every   word-
  260. X     processing package.
  261. X
  262. Xo    Almost every command can be selected by pressing a sin-
  263. X     gle  key.  There  is a "help" facility that gives brief
  264. X     explanations.
  265. X
  266. Xo    You can set up an "alias" data base to avoid the use of
  267. X     the  usually cryptical electronic mail addresses.  This
  268. X     facility can also be used to  implement  small  mailing
  269. X     lists.
  270. X
  271. Xo    There is a facility for personalized headers and signa-
  272. X     tures.
  273. X
  274. XThe mail software does not attempt to solve every problem in
  275. Xthis  world.   It is only fair to mention the most important
  276. Xlimitations here:
  277. X
  278. Xo    Any information other than pure text must be  converted
  279. X     to  text  format before you can mail it to someone else
  280. X     (for example, programs,  pictures  and  so  on).   For-
  281. X     tunately, there exists a lot of software to aid in this
  282. X     task.  The people  that  installed  the  mail  software
  283. X     should be able to help you out.
  284. X
  285. Xo    Most electronic mail systems impose an upper  limit  to
  286. X
  287. X
  288. X
  289. X                      January 24, 1990
  290. X
  291. X
  292. X
  293. X
  294. X
  295. X                           - 2 -
  296. X
  297. X
  298. X     the  size  of  a  mail message.  This limit varies from
  299. X     about 60 kilobytes to about 100 kilobytes per  message.
  300. X     You  will  have  to  break up larger messages; the mail
  301. X     software does not do it for you.  Normally, you  should
  302. X     not run into this limit.
  303. X
  304. XInstallation of the mail software is  described  in  various
  305. Xother  documents.   The  remainder of this document gives an
  306. Xintroduction to the use of the mail software. The  following
  307. Xgives a summary.
  308. X
  309. XChapter 2, "Starting the program", describes how  to  invoke
  310. Xthe  program,  and  how  to  leave it.  Also gives a general
  311. Xintroduction to the command structure of the program.
  312. X
  313. XChapter 3, "Reading new mail", describes how to take care of
  314. Xnew mail, and what happens once you have read a new message.
  315. X
  316. XChapter 4, "Creating a message", describes how to compose  a
  317. Xmessage from scratch, and how to specify its destination.
  318. X
  319. XChapter  5,  "Sending  and   receiving   electronic   mail",
  320. Xdescribes  how to exchange messages between your machine and
  321. Xthe rest of the world.  It does not apply if your machine is
  322. Xconnected to a "file server".
  323. X
  324. XChapter 6, "Alias data base", describes the use of the alias
  325. Xdata base, and gives an example of a tiny mailing list.
  326. X
  327. XChapter 7, "Replying to a message", describes how to compose
  328. Xa reply to message.
  329. X
  330. XChapter 8, "Mailing other files", describes how  to  distri-
  331. Xbute files via electronic mail.
  332. X
  333. XChapter 9,  "Receiving  encoded  files",  describes  how  to
  334. Xdecode files that have been encoded with e.g. the "uuencode"
  335. Xor "btoa" programs.
  336. X
  337. X2.  Starting the program
  338. X
  339. XStarting the mail program is easy;  just  type  the  command
  340. X"mail".   You  should  see  a screen that looks like the one
  341. Xshown here:
  342. X
  343. X
  344. X
  345. X
  346. X
  347. X
  348. X
  349. X
  350. X
  351. X
  352. X
  353. X
  354. X
  355. X                      January 24, 1990
  356. X
  357. X
  358. X
  359. X
  360. X
  361. X                           - 3 -
  362. X
  363. X
  364. X
  365. XClose  File  Setup  Alias  Print  Up  Down  Enter  Help ?
  366. X==========================================================
  367. XCreate       Create a new message
  368. XWork       2 Messages in preparation
  369. XNew        0 Unread messages
  370. XIn        30 Messages already read
  371. XOut        7 Messages not-yet sent
  372. XSent      20 Messages already sent
  373. X
  374. X
  375. X==========================================================
  376. XSelect a message category with cursor keys and press ENTER
  377. Xor select one of the commands in the top line.
  378. X
  379. X
  380. XThe screen is divided into three horizontal regions:
  381. X
  382. Xo    The top region shows the commands that can be  selected
  383. X     by  pressing  a single key.  Some of these commands are
  384. X     selected by pressing a function key with the same  name
  385. X     as  the  command;  for example, the Up or Down commands
  386. X     are selected by pressing the corresponding  arrow  key.
  387. X     Other  commands are selected by typing the first letter
  388. X     of that command; for example, the  H  key  selects  the
  389. X     "Help"  command;  it  gives a brief description of what
  390. X     the other commands do.
  391. X
  392. Xo    The middle region shows various categories of mail mes-
  393. X     sages.   You might think of it as a collection of boxes
  394. X     with letters.  For example, the "New" box is  for  mes-
  395. X     sages  that  you haven't read yet, and the "Out" box is
  396. X     for messages that you wrote, but that have not yet been
  397. X     sent  away.   The  program also shows how many messages
  398. X     there are within a message category.
  399. X
  400. X     A special case is the "Create" box; it is for  messages
  401. X     you  are  going  to  write.   Think of it as a box with
  402. X     blank sheets of paper.
  403. X
  404. Xo    The bottom region gives an explanation of what you  are
  405. X     supposed  to do when you see this screen.  In this par-
  406. X     ticular case, it tells that you can select one  of  the
  407. X     message   categories   by  moving  the  cursor  to  the
  408. X     appropriate line, and by pressing the "Enter"  key,  or
  409. X     that  you can give commands by pressing the appropriate
  410. X     key.
  411. X
  412. XYou can leave most screens by pressing the "C" key. In  par-
  413. Xticular,  pressing  that  key while the program displays the
  414. Xfirst screen is the preferred way to leave the mail program.
  415. X
  416. X
  417. X
  418. X
  419. X
  420. X
  421. X                      January 24, 1990
  422. X
  423. X
  424. X
  425. X
  426. X
  427. X                           - 4 -
  428. X
  429. X
  430. X3.  Reading new mail
  431. X
  432. XDepending on how the mail software  was  installed  on  your
  433. Xsystem, you may have seen a message that "You have new mail"
  434. Xwhen you started up the machine. This section describes  how
  435. Xto deal with new mail.
  436. X
  437. XIn the display that was described above, move the cursor  to
  438. Xthe  line  with "New" and press the "Enter" key. The program
  439. Xwill present an overview of unread messages that looks  like
  440. Xthe following one:
  441. X
  442. XClose  File  Setup  Alias  Print  PgUp  PgDn  Up  Down  Enter  Help ?
  443. X=====================================================================
  444. X   90  Dec 15 22:18  Wietse Venema "Re: how do I forward a message?"
  445. X   63  Dec 11 23:18  Jan Kalisvaart "File server cleanup"
  446. X    .
  447. X    .
  448. X    .
  449. X-- end of display --
  450. X
  451. X
  452. X=====================================================================
  453. XSelect a message with the cursor keys and press ENTER
  454. Xor select one of the commands in the top line.
  455. X
  456. X
  457. XThe top line of the screen shows a few  more  commands  than
  458. Xthe  screen  described  earlier.  New commands, for example,
  459. Xare the the PgUp and PgDn commands.  They  are  useful  when
  460. Xinformation does not fit in the middle screen region.
  461. X
  462. XThe middle screen region shows summaries of  mail  messages.
  463. XEach  message  is summarized on a single line, and gives the
  464. Xfollowing information:
  465. X
  466. Xo    The message sequence number (e.g. 90).   Normally,  you
  467. X     do  not  have to remember message sequence numbers, but
  468. X     the mail program needs them in  order  to  keep  things
  469. X     apart.
  470. X
  471. Xo    The date of arrival (e.g. Dec 15 22:18).  If a  message
  472. X     is  very old, the year will be displayed instead of the
  473. X     hours and minutes.
  474. X
  475. Xo    The sender of the message (e.g. Wietse  Venema).   Usu-
  476. X     ally,  the mail program presents a "human" name.  Every
  477. X     now and then, however, you may see an  ugly  electronic
  478. X     mail address.
  479. X
  480. Xo    The subject of the message (e.g. "Re:  how do I forward
  481. X     a  message?").   This allows you to decide if a message
  482. X     is urgent and has to be dealt with right  away,  or  if
  483. X     the message can wait till later.
  484. X
  485. X
  486. X
  487. X                      January 24, 1990
  488. X
  489. X
  490. X
  491. X
  492. X
  493. X                           - 5 -
  494. X
  495. X
  496. XAfter you have moved the cursor to the message you  want  to
  497. Xread, and have pressed the "Enter" key, the program displays
  498. Xthe selected message.  The following example shows what  the
  499. Xscreen might look like.
  500. X
  501. XClose  Delete  Mail  Print  Reply  Save  Work  |  PgUp  PgDn  Up  Down  Help ?
  502. X==============================================================================
  503. XSubject: Re: how do I forward a message?
  504. XOrganization: Eindhoven University of Technology, The Netherlands
  505. XFrom: wietse@wzv.win.tue.nl (Wietse Venema)
  506. XTo: you
  507. X
  508. XSelect the message that you wish to forward, and press the "M" (Mail)
  509. Xkey.  The program will ask for a destination. As usual, you can enter
  510. Xan alias or a real address. This command mails a copy of the message;
  511. Xit does not change or remove the message itself.
  512. X
  513. X                Greetings,
  514. X                                Wietse Venema
  515. X-- end of display --
  516. X
  517. X==============================================================================
  518. X(Reading a mail message)
  519. X
  520. X
  521. XAt this stage you may decide to do nothing with the message;
  522. Xjust  hit  the  "C"  key and the program returns to the last
  523. Xmessage-selection screen.  Now that  the  message  has  been
  524. Xread  it  will no longer show up in an overview of the "New"
  525. Xcategory; once a "New" message has been read it goes to  the
  526. X"In" category, and remains there until you explicitly delete
  527. Xit.
  528. X
  529. XHitting the "C" key once more brings us back to  the  begin-
  530. Xning of the program.
  531. X
  532. X4.  Creating a message
  533. X
  534. XIn order to compose  a  message,  move  the  cursor  to  the
  535. X"Create  a new message" line in the first screen of the mail
  536. Xprogram and press the "Enter" key.  After a few seconds  you
  537. Xshould see the first screens of the same word processor that
  538. Xyou probably also use for  other  activities.   Please  note
  539. Xthat  the  mail  program  has not terminated; as soon as you
  540. Xexit from the word processor you will  return  back  to  the
  541. Xmail program.
  542. X
  543. XIf all is well, your message should begin with a "Subject: "
  544. Xline.  Depending on how the mail software was set up on your
  545. Xmachine, an "empty" message may already contain one or  more
  546. Xcustomized header lines, as well as a customized "signature"
  547. Xat the end of the message.  The following is an "empty" mes-
  548. Xsage  as  produced  on  my personal system (the text between
  549. Xsquare braces is not part of the  "empty"  message;  I  just
  550. X
  551. X
  552. X
  553. X                      January 24, 1990
  554. X
  555. X
  556. X
  557. X
  558. X
  559. X                           - 6 -
  560. X
  561. X
  562. Xadded it to clarify things).
  563. X
  564. XSubject:  [the subject of this message]
  565. XOrganization:  Eindhoven University of Technology, The Netherlands
  566. X
  567. X[this is where the actual message goes]
  568. X
  569. X                                        Wietse Venema
  570. X
  571. X
  572. XIf your "empty" message contains garbage you should  contact
  573. Xthe people that installed the mail software on your system.
  574. X
  575. XThe message text that you are about to enter  will  be  only
  576. Xpart of the message that other people will receive; the mail
  577. Xsoftware automatically prefixes each message with  your  own
  578. Xelectronic mail address, and the current date-.
  579. X
  580. XObviously, further details about the entry of  message  text
  581. Xdepend  on  the  word-processing package that you are using.
  582. XSuffice to say that upon exit,  the  word  processor  should
  583. Xproduce  an "ASCII document" file; the people that installed
  584. Xthe mail software on your machine should be able to  provide
  585. Xmore details on this topic.
  586. X
  587. XUpon return from the word processor back to  the  mail  pro-
  588. Xgram,  you  will  see  the  first  few  lines of your newly-
  589. Xcomposed message in the middle region of the screen.   There
  590. Xmay be "funny cookies" in your text if you forgot to produce
  591. Xan "ASCII document"; if that is the case you had better  re-
  592. Xenter  the  word  processor  (by  pressing  the "E" key) and
  593. Xcorrect this mistake.  After this,  your  screen  should  be
  594. Xsomething like:
  595. X
  596. X
  597. XClose  Delete  Edit  Mail  Print  PgUp  PgDn  Up  Down  Help ?
  598. X==============================================================
  599. XSubject: your subject
  600. Xoptional header lines
  601. X
  602. Xyour message
  603. X-- end of display --
  604. X
  605. X
  606. X==============================================================
  607. X(Reading a message in preparation)
  608. X
  609. X_________________________
  610. X- Your message will probably be prefixed  with  several
  611. Xadditional  rude  header  lines while it passes through
  612. Xother machines on the way to its destination. This hap-
  613. Xpens  outside  the control of the mail software on your
  614. Xmachine.
  615. X
  616. X
  617. X
  618. X
  619. X                      January 24, 1990
  620. X
  621. X
  622. X
  623. X
  624. X
  625. X                           - 7 -
  626. X
  627. X
  628. XWhat you see on the screen is a close approximation of  what
  629. Xother  people  will  receive.  If this is the first time you
  630. Xuse electronic mail you may  wish  to  use  the  "PgUp"  and
  631. X"PgDn" keys to check things out.
  632. X
  633. XNormally, the next step will be to mail the message  to  its
  634. Xdestination,  but  you  may choose any of the other commands
  635. Xshown in the upper line of the  screen.   For  example,  you
  636. Xcould choose the put the message "on hold"; the mail program
  637. Xwill ask you to give a one-line description so that you  can
  638. Xeasily  find  it  back at a later time (it will be stored in
  639. Xthe category "Messages in preparation").
  640. X
  641. XIf you choose the "Mail" command, the program  will  respond
  642. Xwith:
  643. X
  644. X        Press ESC to cancel. Send message to:
  645. X        ?
  646. X
  647. X
  648. XYou should enter one or more electronic  mail  addresses  or
  649. Xaliases.   If  what you wrote was just a "test" message, you
  650. Xmight want to mail it to yourself.  There is  nothing  crazy
  651. Xabout  sending mail to yourself; many people do that instead
  652. Xof littering their rooms  with  notes  on  small  pieces  of
  653. Xpaper.   Aliases are described later on, and are more easily
  654. Xremembered than real electronic mail addresses.  Your  input
  655. Xshould be terminated by pressing the "Enter" key.
  656. X
  657. XAfter this, the program returns to the  first  screen.   The
  658. Xmessage  you  just  "mailed"  will  temporarily  live in the
  659. Xcategory "Not-yet sent".  If your machine is connected to  a
  660. X"file  server",  it  will  automatically  be  moved  to  the
  661. Xcategory "Already sent" within a short period of time.  Oth-
  662. Xerwise, you should read the next section.
  663. X
  664. X5.  Sending and receiving mail
  665. X
  666. XThis section describes how to exchange mail messages between
  667. Xyour  machine  and  the rest of the world. This is automati-
  668. Xcally taken care of if your machine has a direct  connection
  669. Xto a "file server".
  670. X
  671. XIf you are not connected to a "file  server",  most  of  the
  672. Xmail-program  screens  will provide a "Network" command (for
  673. Xexample, the first screen).  All messages that  you  produce
  674. Xwill  stay on your machine, in the message category "Not-yet
  675. Xsent"", until the mail software has sent them  away  through
  676. Xthe  network.   Also, messages, having your machine as their
  677. Xdestination, will not arrive on your machine until the  mail
  678. Xsoftware has picked them up through the network.
  679. X
  680. XThe mail software may have been installed such that  it,  as
  681. Xsoon  as  the  machine  is  turned  on,  automatically makes
  682. X
  683. X
  684. X
  685. X                      January 24, 1990
  686. X
  687. X
  688. X
  689. X
  690. X
  691. X                           - 8 -
  692. X
  693. X
  694. Xcontact with the network.  In that case, you do not need  to
  695. Xinvoke  the  "Network" command by hand.  It can, however, be
  696. Xuseful if you are expecting urgent mail, or if you  wrote  a
  697. Xletter that should be sent away right now.
  698. X
  699. XThe "Network" command is activated by pressing the "N"  key.
  700. XThe  mail  program  will ask for a network password (the one
  701. Xgiven to you by the people that installed the mail  software
  702. Xon  your machine).  Transferring mail across the network may
  703. Xtake a few minutes.  If all goes well, all messages  in  the
  704. Xmessage  category  "Out"  will  have  moved  to the category
  705. X"Sent"; in addition, you may have  received  new  mail  that
  706. Xwill show up in the "New" message category.
  707. X
  708. X6.  Alias data base
  709. X
  710. XThe addresses used in electronic mail are  often  ugly,  and
  711. Xhard  to remember.  To alleviate this problem, the mail pro-
  712. Xgram provides an alias data base facility.  This allows  you
  713. Xto  use  easily-remembered  names instead of mail addresses;
  714. Xthe mail program will automatically replace aliases  by  the
  715. Xactual  mail  addresses that you have specified in the alias
  716. Xdata base.
  717. X
  718. XThe following is an example of an alias data base:
  719. X
  720. X        wietse  wswietse@lso.win.tue.nl
  721. X        jan     wsbujank@win.tue.nl
  722. X        staff   wietse jan
  723. X
  724. X
  725. XAn alias data base has a very  simple  format:   each  alias
  726. Xdefinition  consists  of  a  single line of text with two or
  727. Xmore words.  Words may be separated  by  blanks  or  commas.
  728. XThe  first  word  is  the alias; it will be replaced (by the
  729. Xwords in the remainder of the  line)  if  the  mail  program
  730. Xfinds  the alias in the destination of a mail message.  With
  731. Xthe alias data base shown  above,  the  message  destination
  732. X"wietse"  will  be automatically replaced by the destination
  733. X"wswietse@lso.win.tue.nl".
  734. X
  735. XAn interesting property is that an alias may be  defined  in
  736. Xterms  of  other  aliases;  an  alias  may,  however, not be
  737. Xdefined in terms of itself!  In the above example, the third
  738. Xline  illustrates  the  definition  of  an alias in terms of
  739. Xother aliases.  The same line also is an example of  how  to
  740. Ximplement a small mailing list; all messages sent to "staff"
  741. Xwill   be   sent   to   "wswietse@lso.win.tue.nl"   and   to
  742. X"wsbujank@win.tue.nl".  Typing the word "staff" certainly is
  743. Xeasier.
  744. X
  745. XThe mail program is smart enough to eliminate,  after  alias
  746. Xreplacement,  multiple  occurrances of the same destination.
  747. XThus, you do not have to worry about duplicate  destinations
  748. X
  749. X
  750. X
  751. X                      January 24, 1990
  752. X
  753. X
  754. X
  755. X
  756. X
  757. X                           - 9 -
  758. X
  759. X
  760. Xif you combine several mailing lists into a bigger one.
  761. X
  762. XMost mail-program screens provide the "Alias" command.  This
  763. Xallows  you to look at the contents of your alias data base,
  764. Xand to invoke a word processor to make  changes.   The  word
  765. Xprocessor  should  save  the alias data base in "ASCII docu-
  766. Xment" format, just like ordinary mail messages.
  767. X
  768. XIt is worth noting that aliases can be defined in any order.
  769. XThe above example would have worked just as well if the last
  770. Xentry had been the first one.  Thus, you may  wish  to  keep
  771. Xthe alias data base in sorted order.
  772. X
  773. XFinally, a few caveats are in order.  If an alias is defined
  774. Xmore  than  once,  only  the  last  definition will be used.
  775. XAlthough the mail program does not care whether an alias  is
  776. Xdefined  in  upper case or in lower case, it is wise to keep
  777. Xelectronic mail addresses in lower case.
  778. X
  779. X7.  Replying to a message
  780. X
  781. XReplying to a mail message is almost the same as creating  a
  782. Xmail  message  from scratch; the main difference is that you
  783. Xmust specify which message you are replying to.
  784. X
  785. XIn order to reply to a message, select it  with  the  cursor
  786. Xkeys  and  the "Enter" key, so that the contents of the mes-
  787. Xsage become visible on the screen.   Pressing  the  "R"  key
  788. Xexecutes the reply command.
  789. X
  790. XThe program will ask you if the reply should include a  copy
  791. Xof  the  message  being replied to.  Including a copy of the
  792. Xoriginal message is convenient if the sender  asked  several
  793. Xquestions; both you and the recipient of the message can see
  794. Xwhat questions you are actually replying to.   In  order  to
  795. Xdistinguish the text that you write from what the other per-
  796. Xson wrote, the latter text will be prefixed with a ">" char-
  797. Xacter at the beginning of each line.
  798. X
  799. XAfter you answered  the  question,  the  mail  program  will
  800. Xinvoke  a  word processing program.  Most of what follows is
  801. Xthe same as when you create an electronic mail message:  the
  802. Xmail program has not terminated, but is just waiting for you
  803. Xto finish editing; upon exit, the  word  processing  package
  804. Xshould  produce  an "ASCII document" file; after leaving the
  805. Xword processing program you will return to the mail program.
  806. X
  807. XAt this point, your screen should look like this:
  808. X
  809. X
  810. X
  811. X
  812. X
  813. X
  814. X
  815. X
  816. X
  817. X                      January 24, 1990
  818. X
  819. X
  820. X
  821. X
  822. X
  823. X                           - 10 -
  824. X
  825. X
  826. X
  827. XClose  Delete  Edit  Mail  Print  PgUp  PgDn  Up  Down  Help ?
  828. X==============================================================
  829. XSubject: Re: The subject of the original message
  830. XOther customized header lines may go here
  831. X
  832. X>Text taken from the original message is prefixed
  833. X>to distinguished it from the text that you wrote.
  834. X
  835. XYour text
  836. X-- end of display --
  837. X
  838. X
  839. X==============================================================
  840. X(Reading a message in preparation)
  841. X
  842. X
  843. XIn order to send the message, press the "M" key. The program
  844. Xwill respond with:
  845. X
  846. X        Press ESC to cancel. Send message to:
  847. X        ? some-mail-address
  848. X
  849. X
  850. XThe mail address shown by the program  was  taken  from  the
  851. Xoriginal message and should usually be correct.  If you wish
  852. Xto use that address, just press the "Enter" key.  Otherwise,
  853. Xthe address can be changed in the usual way; you can specify
  854. Xone or more aliases or electronic mail addresses.
  855. X
  856. XAfter this, the message that you wrote will temporarily live
  857. Xin  the  message category "Not-yet sent"; if your machine is
  858. Xconnected to a "file server" the message will  automatically
  859. Xbe  moved  to  the message category "Already sent".  If your
  860. Xmachine is not connected to a "file server", read  the  sec-
  861. Xtion "Sending and receiving mail".
  862. X
  863. X8.  Mailing other files
  864. X
  865. XIn addition to sending files created with your word  proces-
  866. Xsor,  the  mail  program  provides  a facility to distribute
  867. Xcopies of other files as well.  This feature is  of  limited
  868. Xuse, however, since it only works well with pure text files;
  869. Xa file that contains non-textual data, such as a program  or
  870. Xa  picture, will have to be converted to textual form before
  871. Xthe mail program can handle it.  The mail program can,  how-
  872. Xever,  help  you  to find out whether a file is suitable for
  873. Xmailing.
  874. X
  875. XMost screens of the mail program provide  a  "File"  command
  876. Xthat  can  be executed by pressing the "F" key.  After a few
  877. Xseconds the middle region of the screen should show a  list-
  878. Xing  of the current directory.  The top region of the screen
  879. Xlists the commands that you can execute; the  bottom  region
  880. X
  881. X
  882. X
  883. X                      January 24, 1990
  884. X
  885. X
  886. X
  887. X
  888. X
  889. X                           - 11 -
  890. X
  891. X
  892. Xof the screen shows the name of the directory being listed.
  893. X
  894. XClose  Print  Save  PgUp  PgDn  Up  Down  Enter  Help ?
  895. X===================================================================
  896. X.                        <dir> Dec 28 18:10
  897. X..                       <dir> Dec 27 16:36
  898. Xalias.c                   3295 Dec 12 22:41
  899. Xascf.c                    5315 Dec 23 21:16
  900. Xcall.c                    2282 Nov 30 22:08
  901. Xcmail.c                   3748 Dec 17 21:22
  902. Xcreate.c                  2176 Dec 27 18:28
  903. Xdesk.c                   12435 Dec 27 14:04
  904. Xdeskutil.c                7180 Dec 27 15:29
  905. X .
  906. X .
  907. X .
  908. X===================================================================
  909. XTo display a file, select it with the cursor keys, then press ENTER
  910. X(showing directory: "/usr2/wietse/src/pc-mail/mail")
  911. X
  912. X
  913. XYou can leave the "File" command at any time by pressing the
  914. X"C" key once or twice.
  915. X
  916. XWith the cursor keys and the PgUP  and  PgDn  keys  you  can
  917. X"walk"  through the directory listing.  Pressing the "Enter"
  918. Xkey causes the program to "open" the thing  being  selected.
  919. XIf you select a directory, the program will display the con-
  920. Xtents of that directory; if you select a file,  the  program
  921. Xwill display the contents of that file.
  922. X
  923. XIn order to mail a copy of a file, select that file with the
  924. Xcursor  and  "Enter"  keys so that its contents are shown on
  925. Xthe screen.  Only if you see a clean  text,  without  "funny
  926. Xcookies",  the  file  is suitable for mailing.  Pressing the
  927. X"M" key executes the "Mail" command.  It will ask for a des-
  928. Xtination,  which may be one or more aliases or an electronic
  929. Xmail addresses.  Pressing "Enter" finishes the  "Mail"  com-
  930. Xmand.   As  usual,  the message will temporarily live in the
  931. Xmessage category "Not-yet sent"; if  your  machine  is  con-
  932. Xnected  to a "file server" the message will automatically be
  933. Xmoved to the  message  category  "Already  sent".   If  your
  934. Xmachine  is  not connected to a "file server", read the sec-
  935. Xtion "Sending and receiving mail".
  936. X
  937. XIn order to leave the "File" command you may have  to  press
  938. Xthe "C" key once or twice.
  939. X
  940. X9.  Receiving encoded files
  941. X
  942. XSometimes people send "encoded" files if they  contain  data
  943. Xthat  cannot be sent directly as an electronic mail message.
  944. XEncoded files must be processed by a "decoding"  program  in
  945. Xorder to restore the original data.
  946. X
  947. X
  948. X
  949. X                      January 24, 1990
  950. X
  951. X
  952. X
  953. X
  954. X
  955. X                           - 12 -
  956. X
  957. X
  958. XThere exist various encoding methods.  Usually,  the  sender
  959. Xwill  provide  some  information  about  the encoding method
  960. Xused.  In case of doubt, you will have to consult a  techni-
  961. Xcal person.
  962. X
  963. XIf a message was encoded with the "uuencode" program it usu-
  964. Xally looks like
  965. X
  966. Xbegin 644 tutorial.ms
  967. XM7"(@9F]R;6%T('=I=&@@=&AE(&US(&UA8W)O(&QI8G)A<GD*+E1,"E!#+4U!;
  968. XM24P@='5T;W)I86P*+D%5"E=I971S92!:+B!696YE;6$*36%T:&5M871I8W,@P
  969. XM86YD($-O;7!U=&EN9R!38VEE;F-E+`I%:6YD:&]V96X@56YI=F5R<VET>2!OJ
  970. X .
  971. X .
  972. X .
  973. X
  974. X
  975. XIn order to restore the original file,  select  the  message
  976. Xsuch  that  its contents appear on the screen, and press the
  977. X"|" key.  The program will ask for the name of a command:
  978. X
  979. X    Press ESC to cancel. Filter through command:
  980. X    ?
  981. X
  982. X
  983. XAt this point, specify the "uudecode" command and press  the
  984. X"ENTER" key.
  985. X
  986. X    Press ESC to cancel. Filter through command:
  987. X    ? uudecode
  988. X
  989. X
  990. XThis produces, in the current working directory,  a  decoded
  991. Xfile  with the same name as shown in the "begin" line in the
  992. Xmessage (in this  particular  example,  the  name  would  be
  993. X"tutorial.ms").
  994. X
  995. XAnother popular encoding program is "btoa". If that  program
  996. Xhas been used, the message looks somewhat like:
  997. X
  998. Xxbtoa Begin
  999. X>Tt;&DfT]'F<GdAFD)e=BOr<'F!,=.@rcK1Ch[@!@<-W#/lYLO:dZg/5tO`m
  1000. XqQFE;"9=tUpuASu'r@1#_;FD,6&@<?3nF!+n/A0=6XD/aW>Bl7Q+;e'NQDI[
  1001. XJ=9*EcYr:Gp%$;+B2o^BPqa)DeF>&7;6XMBQ&'*DCco0BOr;]ATVTsEbo0%A
  1002. X .
  1003. X .
  1004. X .
  1005. X
  1006. X
  1007. XIn order to restore the original file,  select  the  message
  1008. Xsuch  that  its contents appear on the screen, and press the
  1009. X"|" key.  The program will ask for the name of a command:
  1010. X
  1011. X
  1012. X
  1013. X
  1014. X
  1015. X                      January 24, 1990
  1016. X
  1017. X
  1018. X
  1019. X
  1020. X
  1021. X                           - 13 -
  1022. X
  1023. X
  1024. X
  1025. X    Press ESC to cancel. Filter through command:
  1026. X    ?
  1027. X
  1028. X
  1029. XAt this point, specify the "atob" command and a  file  name,
  1030. Xand press the "ENTER" key.  For example,
  1031. X
  1032. X    Press ESC to cancel. Filter through command:
  1033. X    ? atob >abc.def
  1034. X
  1035. X
  1036. XThe ">" is needed or you will get the decoded data  on  your
  1037. Xscreen.   If  all  goes  well, you should now have a decoded
  1038. Xfile in your current working directory (in this example, the
  1039. Xname of the file would be "abc.def").
  1040. X
  1041. X
  1042. X
  1043. X
  1044. X
  1045. X
  1046. X
  1047. X
  1048. X
  1049. X
  1050. X
  1051. X
  1052. X
  1053. X
  1054. X
  1055. X
  1056. X
  1057. X
  1058. X
  1059. X
  1060. X
  1061. X
  1062. X
  1063. X
  1064. X
  1065. X
  1066. X
  1067. X
  1068. X
  1069. X
  1070. X
  1071. X
  1072. X
  1073. X
  1074. X
  1075. X
  1076. X
  1077. X
  1078. X
  1079. X
  1080. X
  1081. X                      January 24, 1990
  1082. X
  1083. X
  1084. END_OF_main/tutorial.doc
  1085. if test 26447 -ne `wc -c <main/tutorial.doc`; then
  1086.     echo shar: \"main/tutorial.doc\" unpacked with wrong size!
  1087. fi
  1088. # end of overwriting check
  1089. fi
  1090. echo shar: End of archive 1 \(of 1\).
  1091. cp /dev/null ark1isdone
  1092. MISSING=""
  1093. for I in 1 ; do
  1094.     if test ! -f ark${I}isdone ; then
  1095.     MISSING="${MISSING} ${I}"
  1096.     fi
  1097. done
  1098. if test "${MISSING}" = "" ; then
  1099.     echo You have unpacked all 1 archives.
  1100.     rm -f ark[1-9]isdone
  1101. else
  1102.     echo You still need to unpack the following archives:
  1103.     echo "        " ${MISSING}
  1104. fi
  1105. ##  End of shell archive.
  1106. exit 0
  1107.  
  1108.